In software support, a customer will often provide evidence of a software problem in the form of output provided by the computer program itself, called “dump files.” Dump files contain the recorded state of the working memory of a computer program at a specific time, generally when the program has crashed, and are used to assist in diagnosing errors in computer programs. Dump files can include reports of the problem, recent activity, and the current state of the computer at the time the problem occurred. Dump files allow a computer program to be analyzed without monopolizing the operating system and can be used to retrieve information from a no longer running program. Dump files are written in machine code, which can be converted into a readable form by dump formatters to allow service engineers to determine a cause of, and potentially a solution to, the customer's problem.
In addition to reviewing dump files, service engineers and software developers also use debugging software to study the computer program's behavior in detail. One example of debugging software is a source level debugger (SLD), which allows the service engineer or software developer to analyze line by line the problem source code. Debugging software can be used to debug dump formatters, either in the case of a customer problem or during the debugging of new code. When a dump formatter converts a dump file into readable form, the dump file itself is loaded into the dump formatter's memory. As a dump formatter is executed, the service engineer or software developer may want to browse specific memory locations or modify stored values. The dump file contains storage addresses, which are used to locate specific parts of memory. However, the dump formatter's memory locations are different to the memory locations where the contents were originally held for use by the computer program.